1. Field of the Invention
The present invention relates to a transmitter for performing packet communication in a packet network, a communication system, and a communication method of the same.
2. Description of the Related Art
Packet communication is a communication method dividing transfer data into predetermined amounts of data to form packets and transferring the data in units of packets through a network. A “bandwidth guarantee” in packet communication means to transfer the data while maintaining a constant data transfer speed or a constant mean data transfer speed with respect to a certain specific communication (flow).
FIG. 1 shows an example of the configurations of a transmission node 10 for performing conventional packet communication, a reception node 20, a relay node 30, and a network 40 with these nodes commonly connected thereto. As illustrated, the transmission node 10, reception node 20, and the relay node 30 are configured by a central processing unit (CPU), a memory such as a random access memory (RAM), and a transceiver buffer. These components are connected to each other via buses provided at the nodes. The data and control signals are transferred inside the nodes via the buses. Note that the transmission node 10, the reception node 20, and the relay node 30 are configured by host computers connected to the network 40 via for example predetermined interfaces.
In packet communication, the transmission node 10 sends packet communication data (hereinafter, simply described as “packets” for convenience) to the network 40 via the transceiver buffer. The packets transmitted to the network 40 are received by the relay node 30. The related relay node 30 performs predetermined processing, then sends the packets to the network 40 again. The packets transmitted by the relay node 30 are received by the reception node 20. In this way, the packets sent from the transmission node 10 are transferred to the reception node 20 via the network 40. Thus, packet communication can be realized through the network 40. Note that, in the example shown in FIG. 1, there is only one relay node, but it is also possible to perform the packet communication by using a plurality of relay nodes in accordance with the scale of the network 40, the state of connection of the network between the transmission node 10 and the reception node 20, etc.
FIG. 2 is a conceptual view of an example of the packet transfer in a network system including a transmission node A, a reception node F, and a plurality of routers (relay nodes), for example, the routers B to E and routers G to K. Note that, here, when certain packet communication is carried out without strictly identifying the host or the router connected to the network system, the host or the router acting as the data originating side is described as the transmission node, while the destination of the related data transfer is described as the reception node, but any of the routers B to E and routers G to K shown in FIG. 2 can be considered as the transmission node or the reception node.
FIG. 2 shows a case where the data existing at the reception node F serving as the destination is transferred from the transmission node A via the router R. As illustrated, the packets transmitted from the transmission node A are transferred to the reception node F via the routers B, C, D, and E. As illustrated, a data transfer route from the transmission node A via the routers B, C, D, and E to the reception node F is described as the router R. In FIG. 2, the routers B, C, D, and E are relay nodes.
The transfer route where the packets existing on the network are transferred is determined by a communication protocol. The communication protocol is presently being developed basically around for example a transmission control protocol/Internet protocol (TCP/IP) widely utilized in for example a network system such as a local area network (LAN). The TCP/IP protocol is a so-called network architecture —a term generally referring the network model, the hierarchy model, and plurality of protocol groups.
The work of determining the transfer route when a certain packet communication is carried out by the communication protocol is referred to as “routing”. A table indicating identifiers and guaranteed bandwidths of the packets transferred to the relay nodes and transmission and reception nodes selected by the routing is delivered.
FIG. 3 shows an example of the table. As illustrated, this table stores packet identifiers for identifying the packets to be transferred and the guaranteed bandwidths corresponding to the packet identifiers. Here, for example, a packet indicated by a packet identifier PA has to have a bandwidth guarantee of 100, while a packet indicated by a packet identifier PB has to have a bandwidth guarantee of 150. Note that, here, it is assumed that the bandwidth is represented by a bit rate of data transfer, that is, a transfer speed of the data. As an example thereof, a transfer speed of 100 bps is represented by data 100, and the guaranteed bandwidths of the packets can be represented by numerals proportional to that. Each relay node identifies the packet to be transferred by the packet identifier and performs the packet communication in the guaranteed bandwidth requested with respect to that packet, that is, at a requested transfer speed.
A packet identifier is comprised by the minimum information sufficient and required for identifying the packets. For example, in a network employing the TCP/IP protocol, the packet identifier is comprised by a combination of part or all of the IP addresses on the transmitter side and the receiver side, a protocol number, transmission and reception port numbers, and other fields (indicated in the packet header).
FIGS. 4A and 4B show examples of packet headers in a network employing a TCP/IP protocol. As shown in FIG. 4A, the packet header in the IPv4 of the TCP protocol contains, other than information such as a version information (Version) and a header length (H length), information such as a transmitter side IP address (Source IP address), a receiver side IP address (Destination IP address), a transmission port number (Source Port Number), and a reception port number (Destination Port Number). In this case, the transmitter side IP address, receiver side IP address, transmission port number, and the reception port number comprise the packet identifier. Further, it is also possible to add information such as the protocol number into the packet identifier according to need.
FIG. 4B shows a packet header in the IPv6 of the TCP protocol. As illustrated, the packet header contains, other than the version information and a class information (Class), the transmitter side IP address, receiver side IP address, transmission port number, and the reception port number. In this case, the packet identifier can be comprised by the transmitter side IP address, receiver side IP address, transmission port number, and the reception port number. Further, it is also possible to add information such as the protocol number into the packet identifier according to need.
The packet header is usually added to a packet to be transmitted by the transmitter side host and transmitted to the network together with the data portion of the packet. Then, at the time of packet communication, each relay node detects the packet identifier from the packet header added to each packet, decides whether or not the related packet is guaranteed in bandwidth by that, and transfers the related packet in a bandwidth set in the table of the packet identifiers and guaranteed bandwidths shown in FIG. 3, that is, at a certain constant transfer speed in the case of the bandwidth guaranteed packet.
In the router with the bandwidth guarantee set with respect to certain communication, for example, a private queue is assigned for every set identifier. FIG. 5 is a conceptual view of the special purpose queue set for every packet identifier. As illustrated, each packet contains, other than a packet header PH, the packet data portion PD to be actually transferred. The packet identifier is comprised by a combination of some information among a plurality of information existing in the packet header PH.
In the illustrated router, for example, a special purpose queue Qa is prepared for a packet indicated by the packet identifier PA, a special purpose queue Qb is prepared for a packet indicated by the packet identifier B, and a special purpose queue Qz is prepared for a packet indicated by the packet identifier Z.
Further, other than these special purpose queues, a queue Q0 is prepared for the bandwidth unguaranteed packet. Note that, each queue contains for example a buffer for temporarily holding the packet data.
The special purpose queues Qa to Qz prepared for the bandwidth guaranteed packets transmit the packets via packets BKa, . . . , and BKz to the network. On the other hand, the queue Q0 prepared for the bandwidth unguaranteed packet transfers the packets directly to the network without going through those shapers. Here, the packets provided in the special purpose queues are comprised by either of leaky bucket shapers or token bucket shapers.
FIGS. 6A and 6B are conceptual views of a leaky bucket shaper and a token bucket. Both of the leaky bucket shaper and the token bucket shaper play the role of “valves” for controlling the amount of the packet data to be sent out from the queue to the network. Note, in each packet, the method for controlling the amount of the sent data is different. As shown in FIG. 6A, a leaky bucket shaper is for sending out a constant amount of packet data per unit time. Contrary to this, as shown in FIG. 6B, a token bucket shaper is a mechanism for generating a constant amount of tokens per unit time and sending out packet data in an amount similar to the amount indicated by the generated tokens to the network. Namely, by adjusting the opening degrees of the “valves” in accordance with the token amount, the amount of the transmission data to the network is controlled.
As mentioned above, in packet communication, in the nodes set with a bandwidth guarantee among the relay nodes, special purpose queues are prepared for the packets indicated by the identifiers. Then, the packet identifier is extracted from the packet header of the transmission packet, and the queue to be used is determined in accordance with that. At the time of packet transmission, the transfer speed of the packet is controlled with respect to each queue matched with the set bandwidth by using the leaky bucket shaper or the token bucket shaper, and the packet transfer is carried out with a higher priority in comparison with the bandwidth unguaranteed packets.
FIG. 7 is a flowchart of the flow of packet transmission processing. Below, an explanation will be made of an operation of the packet transmission processing by referring to drawings.
As illustrated, first, at step SS1, it is judged if transmission is possible from the queue Qa to Qz prepared for every packet. If transmission is possible, transmission is carried out by that queue (SS3). On the other hand, if transmission is impossible, the routine proceeds to step SS2, where it is judged if transmission is possible from the queue Q0 of the bandwidth unguaranteed packet. If transmission is possible, data is transmitted by the queue Q0 (SS4). If transmission is impossible, the routine returns to step SS1, where the above processing is repeated.
In a network system provided with the above routers, the bandwidth requested for certain communication is guaranteed. As a result, it becomes possible to transfer the data from the transmission node via the network to the reception node in the bandwidth set by the predetermined packet in advance, for example, at the transfer speed.
Summarizing the problem to be solved by the invention, in a network having the above conventional router, when a packet transfer is tried in a bandwidth exceeding the set bandwidth, there is a possibility that the transfer of that packet will no longer be able to be normally carried out.
Here, a case where communication of more than the set bandwidth is carried out by regarding the set bandwidth as the minimum guaranteed bandwidth will be considered. Usually, when packet communication on the network is carried out, in order to actively use resources of the network to the highest limit, a so-called best effort for raising the transfer speed of the packets as much as possible has been made.
Concerning the packet transfer in the set bandwidth, the transfer is carried out with a high priority in comparison with the bandwidth unguaranteed packets, but when it is intended to perform packet transfer that exceeds the set bandwidth, that is, where there are no longer any vacancies in the corresponding queue provided with respect to the identifier of that communication, in that router, either of two professing shown in FIG. 8 is taken.
First, in the processing Ta shown in FIG. 8, the packet transfer is carried out at a transfer speed more than the set bandwidth so far as there is an vacancy bandwidth. Namely, the transfer is carried out while regarding that packet as a bandwidth unguaranteed packet. Next, as the processing Tb shown in FIG. 8, the transfer is not carried out at the transfer speed more than the set bandwidth. In this case, that packet is discarded.
Each router on the network takes either of the processing Ta or Tb shown in FIG. 8. FIGS. 9A and 9B show the fact that different results arise in the transfer of a certain packet PA according to the routers taking the professing Ta and Tb.
For example, as shown in FIG. 9A, the packet PA sent from the transmission node A passes through the relay nodes B, C, and D and transferred to the reception node E. Here, it is assumed that the relay nodes B, C, and D all perform the processing Ta shown in FIG. 8. In this case, as illustrated, in the routers B, C, and D, so far as there is an vacancy bandwidth for communication set with the bandwidth guarantee, a bandwidth more than the set bandwidth can be utilized. The transfer capability of the routers B, C, and D is sufficiently actively used, thus high speed packet communication can be realized.
On the other hand, when performing the processing Tb shown in FIG. 8 in one or more routers among the relay nodes from the transmission node A to the reception node E, packet communication cannot be normally carried out. As shown in FIG. 9B, the packet PA sent from the transmission node A is transferred to the reception node E through the relay nodes B, C′, and D. Here, if it is assumed that the relay node C′ is the router for performing the processing Tb shown in FIG. 8, when the packet PA is transferred in the bandwidth more than the set bandwidth and arrives at the relay node C′, the related relay node C′ does not perform the communication in the bandwidth more than the set bandwidth, and the packet PA is discarded here after all. Namely, even if there is one relay node performing the processing Tb shown in FIG. 8 among a plurality of relay nodes, in communication set with a bandwidth guarantee, the bandwidth more than the set bandwidth can not be utilized, the resources of the network cannot be effectively actively used, and, in addition, there is an apprehension that the packet to be transferred will be discarded in the middle and cannot be normally transferred to the receiver side.